#pragma once

#include "Filter.h"
#include "File.h"

#include <string>
#include <map>

class FormatFilter : public Filter {
public:
    FormatFilter(const std::map<std::string, std::string>& formats);
    FormatFilter() = delete;
    FormatFilter(const FormatFilter&) = delete;
    FormatFilter& operator=(const FormatFilter&) = delete;

    virtual ~FormatFilter() = default;

    virtual AlgResultType operator () (const FilePairType& file_pair) const override;

private:

    std::map<std::string, std::string> formats_;
};
